
#ifndef PLUUGIN_OSG
#define PLUUGIN_OSG

//#include <QtDesigner/extension.h>
#include <QtCore/QObject>
#include <QtCore/QString>
#include <QtGui/QIcon>
#include <QtCore/QtPlugin>
#include <Plugin.h>
#include <ObjectInspectorModel.h>
#include "Define.h"

#include <ObjectInspectorDirectorOsg.h>
#include <SimulationObjectOsg.h>
#include <FileSystemObjectOsg.h>
#include <ClassFactoryObjectOsg.h>
class PluginOsg : public QObject, EDesignerCustomPlugin
{
	Q_OBJECT
		Q_INTERFACES(EDesignerCustomPlugin)
public:

	PluginOsg();
    virtual QString name();
    virtual EDesignerCustomPlugin::PluginType pluginType();

    virtual QSharedPointer<ObjectInspectorDirector> getObjectInspectorDirector();

	virtual QMdiArea* getMainWindowMdiArea();
	virtual void setUpActions();
	virtual void pluginLoaded();
    virtual QSharedPointer<SimulationObject> getSimulationObject();
    virtual QSharedPointer<FileSystemObject> getFileSystemObject();
    virtual QSharedPointer<ClassFactoryObject> getClassFactoryObject();

private:
	ObjectInspectorModel* m_objectInspectorModel;
	QMdiArea* m_mdiArea;
    QSharedPointer<ObjectInspectorDirectorOsg> m_directorOsg;
    QSharedPointer<SimulationObjectOsg> m_simObjOsg;
    QSharedPointer<FileSystemObjectOsg> m_fileObjOsg;
    QSharedPointer<ClassFactoryObjectOsg> m_factoryObjOsg;
};

#endif // PLUUGIN_OSG
